1. Field of the Invention
The present invention relates generally to networking, such as storage area networking or cloud computing or converged data networks. Particularly, the present invention relates to storage virtualization.
2. Description of the Related Art
The storage industry has seen almost exponential growth in requirements for storage capacity over the last few years. Although the cost of storage has fallen considerably, administrative and management costs associated with maintaining large quantities of storage has risen considerably. Migration from direct attached server centric storage to storage networks (e.g., SAN) has addressed some complexities of storage management; however, storage networks have proved adequate or efficient only for smaller environments. Storage virtualization in storage networks potentially offers mechanisms for managing large quantities of data over large networks.
Storage network virtualization helps moving storage virtualization functions from servers (e.g., volume manager, file system) and disk subsystems (e.g., RAID, remote mirroring, LUN masking) into the storage network. This creates a virtualization entity which, as a result of its positioning in the storage network, spans all servers and storage systems. Virtualization in the storage network permits full utilization of the potential of storage network with regard to efficient use of resources and data, the improvement of performance, and protection against failures.
Virtualization inserts a abstraction layer between storage devices and storage users. This forms an interface between virtual and physical storage by mapping virtual storage to physical storage and vice versa. Storage is separated into physical implementation level and a logical representational level by abstracting the physical storage to logical storage by aggregating several physical storage devices to form one or more logical (virtual) storage units. Applications on servers connected to the storage networks interface with one or more virtual disks for their I/O operations. The virtualization entity hides the complexities of storage units by translating the incoming I/O operations on the virtual disk into I/O operations on physical storage units. The virtualization entity maintains all translation information (e.g., mapping) for efficient and seamless access of storage data.
FIG. 1 shows a virtual disk vDISK 101 mapping to a physical disk pDISK 103 using thin provisioning. Logical virtual memory blocks are mapped to physical memory blocks in the pDISK 103. Virtual memory blocks 105, 107, etc., can be of fixed or variable size. For example, block 105 is 4 KB in size, while block 109 is 32 KB in size. The allocation of physical blocks in pDISK 103 is done dynamically, i.e., the storage is allocated on receiving an I/O write operation from an application. By allocating physical blocks on an I/O basis, thin provisioning avoids drawbacks of traditional allocation methods (also called fat provisioning) where pools of physical storage are allocated to individual applications. In fat provisioning, even if the level of utilization of the allocated storage space by the application is low, the allocated space cannot be shared with other applications that require additional storage.
However, thin provisioning suffers from fragmentation, degradation of performance, and large metadata overhead. Because the physical blocks are allocated on an I/O basis, the allocation is scattered over the entire physical storage pool. Fragmentation can result in degraded storage utilization. Further, because of the scattering of data, the performance of a read/write operation may be degraded due to numerous head movements for seeking data spread over a large storage space.